package com.hd.sup.modules.alarm.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hd.common.constant.BizConstant;
import com.hd.sup.modules.alarm.model.AlarmDetail;
import com.hd.sup.modules.alarm.model.AlarmRule;
import com.hd.sup.modules.vehicle.model.VehicleAlarmDailyStatis;
import com.hd.sup.modules.vehicle.model.VehicleEndPos;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 报警明细表 服务类
 * </p>
 *
 * @author chentl123
 * @since 2020-12-28
 */
public interface IAlarmDetailService extends IService<AlarmDetail> {

    /**
     * @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
     * @author chentl
     * @description 报警查询分页列表
     * @date 2020/12/31 2:20 下午
     * @params [page, alarmDetail]
     */
    List<Map<String, Object>> getAlarmPage(Page page, AlarmDetail alarmDetail);

    /**
     * @return void
     * @author chentl
     * @description 按照研判规则 生成GPS报警数据
     * bo 当前上报GPS ev:上一次数据
     * @date 2021/1/6 1:37 下午
     * @params [bo, ev]
     */
    VehicleEndPos refreshAlarmFacotors(VehicleEndPos bo, VehicleEndPos ev);

    /**
     * @return void
     * @author chentl
     * @description 刷新或新增报警数据
     * @date 2021/1/20 1:40 下午
     * @params [alarmDetail]
     */
    void refreshAlarmDetailData(AlarmDetail alarmDetail);

    /**
     * @return java.util.Map < java.lang.String, java.lang.Object>>
     * @author chentl
     * @description 获取报警数量分布
     * @date 2021/2/22 3:59 下午
     * @params [param]
     */
    Map<String, Object> getAlarmSumDistribution(VehicleAlarmDailyStatis param);
}
